在這個時代,大型網站設計正朝著微服務架構的方向快速發展。微服務不僅改變了我們構建和部署應用的方式,還賦予了開發者更多的靈活性與可擴展性。隨著微服務開發逐漸成為主流,許多新的設計框架與概念不斷推陳出新。本系列旨在帶領讀者深入了解現代微服務的宏觀架構,並引導讀者設計與實作一個微服務系統。
既然是實作,總要有個題目對吧?我們的實戰題目就是:
To-Do List System 待辦清單系統
未來我們將從概念介紹、架構設計、實作微服務到最後的容器化,一步步帶領大家完成這個系統。
成品大概會長這樣:
Day 01 - 前言與大綱
Day 02 - 微服務架構:從單體到分散式的演進、優勢與挑戰
Day 03 - 探討領域驅動設計(Domain-Driven Design)
Day 04 - Clean Architecture 與 DDD 的架構設計
Day 05 - DDD Strategic Design:To-Do List 系統需求分析與架構規劃
Day 06 - DDD Tactical Design:物件設計到資料庫格式
Day 07 - 微服務基本功:gRPC 與 GraphQL
Day 08 - 微服務架構:從概念到實踐
Day 09 - 開發工具選用:工欲善其事,必先裝套件
Day 10 - 微服務專案建置與 docker-compose
Day 11 - 從零開始:構建你的 DDD Seedwork
Day 12 - 深入 DDD 核心:Account 和 Todo 服務的 Aggregate 實作
Day 13 - Account Service 實作:Register 帳號註冊
Day 14 - Account Service 實作:Login 使用者登入
Day 15 - Account Service 實作:Authentication JWT 製作與認證
Day 16 - Account Infrastructure 實作:資料庫建置與 ORM 開發
Day 17 - Todo Service 實作:一次完成 Create List 和 Create Item
Day 18 - Todo Service 實作:利用 Quick Fix 快速完成 Finish/Remove Functions
Day 19 - Todo Infrastructure 實作:Repository Pattern 介紹
Day 20 - Todo Infrastructure 實作:複習 Entity Framework
Day 21 - Mediator Pattern - MediatR 和 Domain Event 實作
Day 22 - Integration Event:RabbitMQ 和 Producer 開發實作
Day 23 - Integration Event:RabbitMQ 與 Consumer 開發實作
Day 24 - BFF Gateway 實作:從 gRPC 到 REST API
Day 25 - BFF Gateway 實作:JWT Bearer Authentication 與 Authorization
Day 26 - 打造靈活高效的 GraphQL 服務:從設計到實作
Day 27 - Backend 的最後一哩路:Gateway 與 GraphQL Stitching
Day 28 - Cursor AI 魔法:一鍵打造現代化 To-Do List 網頁應用
Day 29 - 收官之戰:端口梳理、容器部署與架構總覽
Day 30 - 結束與開始
上面是我實際完成後的大綱,現在讓我們與第一天給自己的期許做個對比:
我很開心最後能達成最初的設定,雖然過程中遇到了許多困難也曾感到迷茫,但最終都一一克服了。下次我一定要提早準備內容!
關於微服務這種不斷進步的題目,我認為三十篇文章要介紹完這麼多內容幾乎是不可能的。其中許多技術都值得用一整輪鐵人賽來深入剖析。因此,這系列打算以高層次的架構來解析一個簡單的實作系統,並手把手地帶領各位完成屬於自己的微服務系統。希望讀者在日後開發或研究相關技術時不會迷失方向,能更清楚地了解全貌以及未來開發的方向。
其實,實際的應用環境往往複雜且充滿挑戰,業務需求常常迫使你無法採用最佳解,即使有最佳解,手邊的資源也可能只能讓你選擇次佳方案。本系列只是入門,是一種自我挑戰,也希望能對讀者有一絲絲的幫助。